package imotech.ejb.model;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;

@Entity
@NamedQueries({
	@NamedQuery(name="findTodosImoveis", query="select i from Imovel i"),
	@NamedQuery(name="buscar", 
		query="select i from Imovel i where "
				+ "i.negociacao like :negociacao and "
				+ "i.tipo like :tipo and "
				+ "i.bairro like :bairro and "
				+ "i.valor between :valorMinimo and :valorMaximo and "
				+ "i.quartos between :quartosMinimo and :quartosMaximo")
})
public class Imovel implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 8964067950763636981L;
	private int id;
	private String titulo;
	private String descricao;
	private int valor;
	private double latitude;
	private double longitude;
	private double area;
	private int quartos;
	private int vagaGaragem;
	private int sala;
	private int cozinha;
	private int jardim;
	
	private String negociacao;
	private String tipo;
	private String bairro;
	
	private Funcionario corretor;
	private Cliente proprietario;
	
	@Id
    @GeneratedValue(strategy=GenerationType.AUTO)
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	public String getTitulo() {
		return titulo;
	}
	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public int getValor() {
		return valor;
	}
	public void setValor(int valor) {
		this.valor = valor;
	}
	
	
	public double getLatitude() {
		return latitude;
	}
	public void setLatitude(double latitude) {
		this.latitude = latitude;
	}
	public double getLongitude() {
		return longitude;
	}
	public void setLongitude(double longitude) {
		this.longitude = longitude;
	}
	public double getArea() {
		return area;
	}
	public void setArea(double area) {
		this.area = area;
	}
	public int getQuarto() {
		return quartos;
	}
	public void setQuarto(int quarto) {
		this.quartos = quarto;
	}
	public int getVagaGaragem() {
		return vagaGaragem;
	}
	public void setVagaGaragem(int vagaGaragem) {
		this.vagaGaragem = vagaGaragem;
	}
	public int getSala() {
		return sala;
	}
	public void setSala(int sala) {
		this.sala = sala;
	}
	public int getCozinha() {
		return cozinha;
	}
	public void setCozinha(int cozinha) {
		this.cozinha = cozinha;
	}
	public int getJardim() {
		return jardim;
	}
	public void setJardim(int jardim) {
		this.jardim = jardim;
	}
	public int getQuartos() {
		return quartos;
	}
	public void setQuartos(int quartos) {
		this.quartos = quartos;
	}
	public String getNegociacao() {
		return negociacao;
	}
	public void setNegociacao(String negociacao) {
		this.negociacao = negociacao;
	}
	public String getTipo() {
		return tipo;
	}
	public void setTipo(String tipo) {
		this.tipo = tipo;
	}
	public String getBairro() {
		return bairro;
	}
	public void setBairro(String bairro) {
		this.bairro = bairro;
	}
	
	@ManyToOne
	@JoinColumn(name="funcionario_id")
	public Funcionario getCorretor() {
		return corretor;
	}
	public void setCorretor(Funcionario corretor) {
		this.corretor = corretor;
	}
	
	@ManyToOne
	@JoinColumn(name="cliente_id")
	public Cliente getProprietario() {
		return proprietario;
	}
	public void setProprietario(Cliente proprietario) {
		this.proprietario = proprietario;
	}
	
	
	
	
}
